package com.erp.order.service;


import com.erp.order.domain.vo.ErpSellerStoreProductEvaluationVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.oldPage.TableDataInfo;
import com.ruoyi.order.api.domain.ErpSellerStoreProductEvaluation;
import com.ruoyi.order.api.domain.bo.ErpSellerStoreProductEvaluationBo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 在线商品测评Service接口
 *
 * @author erp
 * @date 2023-06-26
 */
public interface IErpSellerStoreProductEvaluationService {
    Integer doubtEvaluation(String country, Long storeId, String payTime, Long productCount, String skuCode);

    /**
     * 查询在线商品测评
     */
    ErpSellerStoreProductEvaluationVo queryById(Long id);

    /**
     * 查询在线商品测评列表
     */
    TableDataInfo<ErpSellerStoreProductEvaluationVo> queryPageList(ErpSellerStoreProductEvaluationBo bo, PageQuery pageQuery);

    /**
     * 查询在线商品测评列表
     */
    List<ErpSellerStoreProductEvaluationVo> queryList(ErpSellerStoreProductEvaluationBo bo);

    /**
     * 新增在线商品测评
     */
    Boolean insertByBo(ErpSellerStoreProductEvaluationBo bo);
    //
//    /**
//     * 修改在线商品测评
//     */
//    Boolean updateByBo(ErpSellerStoreProductEvaluationBo bo);
//
//    /**
//     * 校验并批量删除在线商品测评信息
//     */
//    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
//
    R<Object> submit(ErpSellerStoreProductEvaluationBo bo);

    R<Object> submitOrderNumber(Long orderNumber, Long evaluationId);

    R<Object> submitIntlTrackingNo(String intlTrackingNo, Long evaluationId);

    void exportEvaluatio(HttpServletResponse response, String ids);

    void exportEvaluatioByMobile(HttpServletResponse response);
    //
    R<Object> submitTotalAmount(String totalAmount, Long evaluationId);
    //
    R<Object> sellerShipmentForEvaluation(Long evaluationId);

    R<Object> redReminderForEvaluationOrder();

    R<Object> redReminderCompany();

    List<String> selectStoreList();

    R<Object> invalidEvaluationOrder(String evaluationIds);

    R<Object> evaluationOrderShipped(Long evaluationId);

    R<Object> addEvaluationOrder(Long storeId, Long orderId);


    ErpSellerStoreProductEvaluation getEvaluationByOrderId(Long orderId);

    Boolean judgeSuspected(Long aeProductId, Long storeId);

    Boolean sevenDaysEvaluation(Long aeProductId);
}
